From 72941f1998de71dff2014e4e84284cff57b3dd91 Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Wed, 29 Nov 2006 12:41:30 +0000 Subject: [PATCH] [HVMLOADER] Clean up makefile, change TPM detection. Signed-off-by: Keir Fraser --- tools/firmware/hvmloader/Makefile | 8 +++----- tools/firmware/hvmloader/acpi/build.c | 9 ++++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index 829a9dec87..763f472987 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -18,12 +18,10 @@ # Place - Suite 330, Boston, MA 02111-1307 USA. # -# External CFLAGS can do more harm than good. -CFLAGS := - override XEN_TARGET_ARCH = x86_32 XEN_ROOT = ../../.. -include $(XEN_ROOT)/Config.mk +CFLAGS := -I$(XEN_ROOT)/tools/libxc -I. +include $(XEN_ROOT)/tools/Rules.mk # The HVM loader is started in 32-bit mode at the address below: LOADADDR = 0x100000 @@ -34,7 +32,7 @@ CFLAGS += $(call cc-option,$(CC),-fno-stack-protector,) CFLAGS += $(call cc-option,$(CC),-fno-stack-protector-all,) OBJCOPY = objcopy -CFLAGS += -I$(XEN_ROOT)/tools/libxc -I. -fno-builtin -O2 -msoft-float +CFLAGS += -fno-builtin -O2 -msoft-float LDFLAGS = -nostdlib -Wl,-N -Wl,-Ttext -Wl,$(LOADADDR) SRCS = hvmloader.c mp_tables.c util.c smbios.c diff --git a/tools/firmware/hvmloader/acpi/build.c b/tools/firmware/hvmloader/acpi/build.c index 241c11332d..b221391807 100644 --- a/tools/firmware/hvmloader/acpi/build.c +++ b/tools/firmware/hvmloader/acpi/build.c @@ -115,7 +115,8 @@ int construct_secondary_tables(uint8_t *buf, unsigned long *table_ptrs) int offset = 0, nr_tables = 0; struct acpi_20_madt *madt; struct acpi_20_tcpa *tcpa; - static const uint16_t tis_did_vid_rid[] = {0x0001, 0x0001, 0x0001}; + static const uint16_t tis_signature[] = {0x0001, 0x0001, 0x0001}; + uint16_t *tis_hdr; /* MADT. */ if ( (get_vcpu_nr() > 1) || get_apic_mode() ) @@ -126,8 +127,10 @@ int construct_secondary_tables(uint8_t *buf, unsigned long *table_ptrs) } /* TPM TCPA and SSDT. */ - if ( memcmp((char *)0xFED40F00, tis_did_vid_rid, - sizeof(tis_did_vid_rid)) == 0 ) /* Probe for TIS interface. */ + tis_hdr = (uint16_t *)0xFED40F00; + if ( (tis_hdr[0] == tis_signature[0]) && + (tis_hdr[1] == tis_signature[1]) && + (tis_hdr[2] == tis_signature[2]) ) { memcpy(&buf[offset], AmlCode_TPM, sizeof(AmlCode_TPM)); table_ptrs[nr_tables++] = (unsigned long)&buf[offset]; -- 2.30.2